// utils/formUtils.js

/**
 * 获取表单中发生变更的字段
 * @param {Object} original 原始数据对象
 * @param {Object} current 当前表单数据
 * @param {Object} fieldLabels 字段 key 到 label 的映射
 * @returns {Array} 变更字段列表 [{ key, label, oldValue, newValue }]
 */
export function getChangedFields(original, current, fieldLabels) {
  const changed = [];

  Object.keys(original).forEach(key => {
    const oldValue = original[key];
    const newValue = current[key];

    // 数组字段处理（如省市区）
    if (Array.isArray(oldValue) && Array.isArray(newValue)) {
      if (JSON.stringify(oldValue) !== JSON.stringify(newValue)) {
        changed.push({
          fieldCode: key,
          field: fieldLabels?.[key] || key,
          oldValue: oldValue.join(','),
          newValue: newValue.join(',')
        });
      }
    } else if (oldValue !== newValue) {
      changed.push({
        fieldCode: key,
        field: fieldLabels?.[key] || key,
        oldValue,
        newValue
      });
    }
  });

  return changed;
}
